package com.party.business.service.impl;

import java.util.List;

import cn.hutool.core.io.FileUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.party.business.domain.TFjFile;
import com.party.business.mapper.TFjFileMapper;
import com.party.business.service.ITFjFileService;
import com.party.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;


/**
 * 附件文件Service业务层处理
 *
 * @author ruoyi
 * @date 2024-10-13
 */
@Service
public class TFjFileServiceImpl extends ServiceImpl<TFjFileMapper, TFjFile>  implements ITFjFileService
{
    @Autowired
    private TFjFileMapper tFjFileMapper;

    /**
     * 查询附件文件
     *
     * @param id 附件文件主键
     * @return 附件文件
     */
    @Override
    public TFjFile selectTFjFileById(String id)
    {
        return tFjFileMapper.selectTFjFileById(id);
    }

    /**
     * 查询附件文件列表
     *
     * @param tFjFile 附件文件
     * @return 附件文件
     */
    @Override
    public List<TFjFile> selectTFjFileList(TFjFile tFjFile)
    {
        return tFjFileMapper.selectTFjFileList(tFjFile);
    }

    /**
     * 新增附件文件
     *
     * @param tFjFile 附件文件
     * @return 结果
     */
    @Override
    public int insertTFjFile(TFjFile tFjFile)
    {
                tFjFile.setCreateTime(DateUtils.getNowDate());
            return tFjFileMapper.insertTFjFile(tFjFile);
    }

    /**
     * 修改附件文件
     *
     * @param tFjFile 附件文件
     * @return 结果
     */
    @Override
    public int updateTFjFile(TFjFile tFjFile)
    {
                tFjFile.setUpdateTime(DateUtils.getNowDate());
        return tFjFileMapper.updateTFjFile(tFjFile);
    }

    /**
     * 批量删除附件文件
     *
     * @param ids 需要删除的附件文件主键
     * @return 结果
     */
    @Override
    public int deleteTFjFileByIds(String[] ids)
    {
        return tFjFileMapper.deleteTFjFileByIds(ids);
    }

    /**
     * 删除附件文件信息
     *
     * @param id 附件文件主键
     * @return 结果
     */
    @Override
    public int deleteTFjFileById(String id)
    {
        return tFjFileMapper.deleteTFjFileById(id);
    }

    @Override
    public void savehandleFileList( String businessId,List<TFjFile> fileList) {
        // 检查文件列表是否为空，不为空则逐个处理文件
        if (!CollectionUtils.isEmpty(fileList)) {
            for (TFjFile file : fileList) {
                String url = file.getUrl();
                // 为文件设置业务ID
                file.setBusinessId(businessId);
                // 获取并设置文件后缀，统一转换为小写
                file.setSuffix(FileUtil.getSuffix(url).toLowerCase());
            }
            // 批量保存处理后的文件信息
            this.saveBatch(fileList);
        }
    }
}
